package cn.dengta.webapp.trade.model;

import cn.dengta.common.model.ValueProxy;
import cn.dengta.context.model.LabelI18nProxy;
import lombok.Getter;

@Getter
public enum UserLimitBizType implements LabelI18nProxy<UserLimitBizType, Integer> {
	/** 推荐列表：推荐列表：在推荐列表  在线列表 不展示 */
	rec_list(0, "推荐列表"),
	/** 充值：用户创建订单时，提示：【当前网络不稳定，请刷新后重试】 */
	pay(1, "充值"),
	/** 动态：动态列表不展示该用户的动态及评论 */
	moment(2, "动态"),
	/** 禁止注销：被拉黑的用户，提交注销后，不进行实际注销 */
	logout(3, "禁止注销"),
	/** 邀请链接失效：邀请链接变为失效，绑定邀请码时，不进行实际绑定 */
	invite(4, "邀请链接失效"),
	/** 送礼 */
	gift(5, "送礼"),
	/** 私信 */
	chat(6, "私信"),
	/** 搭讪 */
	greet(7, "搭讪"),
	/** 评论 */
	comment(8, "评论"),
	/** 音视频通话 */
	call(9, "音视频通话"),
	/** 提现 */
	cash(10, "提现"),

	;
	public Integer value;
	public long flag;
	public String label;

	final ValueProxy<UserLimitBizType, Integer> proxy;

	UserLimitBizType(Integer value, String label) {
		this.value = value;
		this.label = label;
		this.flag = 1L << value;
		this.proxy = new ValueProxy<>(this, value, label);
	}

	public static UserLimitBizType nameOf(String name) {
		for (UserLimitBizType type : UserLimitBizType.values()) {
			if (type.name().equals(name)) {
				return type;
			}
		}
		return null;
	}

	public static UserLimitBizType of(Integer value) {
		return rec_list.getValueOf(value);
	}
}
